import { BasicPageParams } from '@/api/model/baseModel'
import { ProductDetailModel } from '@/api/model/productModel'

export interface AdPageSaveParams {
  id?: string //id 修改时必传
  pageType: 1 | 3 //页面类型：1-保存到草稿箱；3-提交审核
  productId: string //关联商品
  pageProductTitle: string //商品标题
  pageSellingPoint: string //商品卖点
  pageName: string //页面名称
  pageTitle: string //页面标题
  resourceList: {
    resourceContent: string //商品资源内容
    resourceStyle?: string //样式
    resourceType: string //类型
  }[]
  skuPreferentialList: {
    skuId: string //优惠 skuId 或 spuId
    skuType: 1 | 2 //类型：1-sku；2-spu
    preferentialPrice: number //优惠金额
  }[]
  moduleList: {
    moduleName: string //模块名称
    moduleStatus: 0 | 1 //模块状态：0-关闭；1-开启
    moduleData: string //模块数据
  }[]
}

export interface AdPageStatusParams {
  pageIdList: string[] //页面ID组
  pageStatus: 1 | 2 //1-已上架（投放中）；2-已下架
}

export interface AdPageRemarkParams {
  id: string //页面ID
  pageRemark: string
}

export interface AdPageDeleteParams {
  pageIdList: string[] //页面ID组
}

export interface AdPageListParams extends BasicPageParams {
  pageType: 1 | 2 | 3 //页面类型：1-草稿箱页面；2-回收站页面；3-有效页面（线上页面、审核页面）
  pageId?: string //页面ID
  pageName?: string //页面名称
  creatorId?: number //创建人
  productTitle?: string //商品名称
  productId?: string //商品货号
  productNum?: string //商品编码
  categoryLevel: number //类目层级
  categoryId: string //类目ID
  brandIdList?: number[] //品牌ID组
  auditStatus?: 1 | 2 | 3 | null //审核状态：1-审核中；2-审核通过；3-审核驳回
  pageStatus?: 1 | 2 | 3 | null //页面状态：1-已上架（投放中）；2-已下架；3-已售罄
  editType?: 1 | 2 //编辑类型：1-新增；2-编辑
  timeType?: 1 //时间类型：1-创建时间；2-删除时间
  startDate?: string //开始时间
  endDate?: string //结束时间
  sort?: string //排序字段：createdAt-创建时间；pageSales-销量；editedAt-最后修改时间；commitedAt-提交时间；deletedAt-删除时间
  order?: 'desc' | 'asc' | null //排序：desc-倒叙；asc-正序
}

export interface AdPageListModel {
  storeId: number
  storeName: string
  id: string
  pageId: string
  mainPic: string
  pageName: string
  pageTitle: string
  productId: string
  productTitle: string
  productShortName: string
  productSellingPoint: string
  productNum: string
  brandName: string
  visitorCount: number
  visitCount: number
  pageSales: number
  pageStock: number
  createdAt: string
  creatorId: number
  creatorName: string
  creatorMobile: string
  editorId: number
  editorName: string
  editorMobile: string
  editedAt: string
  editType: number
  pageStatus: number
  pageRemark: string
  commitedAt: string
  auditStatus: number
  deletedAt: string
  productStatus: number
  immersiveVideoUrl: string
  rejectReason: string
  totalSales: number
  adSales: number
  backSales: number
  natureSales: number
  backFlowSales: number
  marketingSales: number
}

export interface AdPageRecoverParams {
  pageIdList: string[]
}

export interface AdPageTotalCountModel {
  auditNum: number //审核数量
  onlineNum: number //线上数量
}

export interface AdPageStatusCountParams {
  numType: 1 | 2 //类型：1-线上页面统计；2-审核页面统计
  pageType: 1 | 2 | 3 //页面类型：1-草稿箱页面；2-回收站页面；3-有效页面（线上页面、审核页面）
  pageId?: string //页面ID
  pageName?: string //页面名称
  creatorId?: number //创建人
  productTitle?: string //商品名称
  productId?: string //商品货号
  productNum?: string //商品编码
  brandIdList?: number[] //品牌ID组
  categoryLevel?: number //类目层级
  categoryId?: string //类目ID
  auditStatus?: 1 | 2 | 3 | null //审核状态：1-审核中；2-审核通过；3-审核驳回
  pageStatus?: 1 | 2 | 3 | null //页面状态：1-已上架（投放中）；2-已下架；3-已售罄
  editType?: 1 | 2 //编辑类型：1-新增；2-编辑
  timeType?: 1 //时间类型：1-创建时间；2-删除时间
  startDate?: string //开始时间
  endDate?: string //结束时间
}

export interface AdPageStatusCountModel {
  putOnSaleNum: number //上架数量 numType = 1时返回
  soldOutNum: number //售罄数量 numType = 1时返回
  putOffSaleNum: number //下架数量 numType = 1时返回
  onlineNum: number //线上总数量数量 numType = 1时返回
  rejectNum: number //拒绝数量 numType = 2时返回
  auditingNum: number //审核中数量 numType = 2时返回
  auditPassedNum: number //审核通过数量 numType = 2时返回
}

export interface AdPageDetailParams {
  id: string
}

export interface AdPageDetailModel extends AdPageSaveParams {
  product: ProductDetailModel
}

export interface MpQrcodeParams {
  type: 1 | 2 //类型：1-99猫；2-99猫客服
  path: string
}

export interface AdPageQuickEditParams {
  id: string
  moduleList: {
    moduleName: string //模块名称
    moduleStatus: 0 | 1 //模块状态：0-关闭；1-开启
    moduleData: string //模块数据
  }[]
}

export interface GetPagesListParams {
  type: number
  pageType: number
  pageId?: number
  title?: string
  startDate?: string
  endDate?: string
  creatorId?: number
  pageIdList?: number[]
  sort?: string
  order?: string
}

export interface PageAccountListModel {
  advertisingAccountName: string
  pageRefreshToken: string
  platformChannels: string
  createTime: string
  advertisingAccountCode: string
  disabled: 0 | 1
  id: number
  refreshToken: string
}

export interface ExitPopupRecordParams extends BasicPageParams {
  pageId: string
  refluxType: 1 | 2 | 3 | 4
  popupIndex: number
}

export interface ExitPopupRecordModel {
  pageId: string
  refluxType: number
  popupIndex: number
  discountAmount: number
  orderCount: number
  createdAt: string
  refluxPopupStyle: number
  refluxPageType: number
  refluxPageStyle: number
  aggregationPageStyle: number
  accountName: string
  accountMobile: string
}
